package com.youdoneed.community.forum.dao;

import com.youdoneed.community.forum.entity.Allowviewmessgae;
import com.youdoneed.community.forum.vo.AllowviewmessgaeVo;
import org.apache.ibatis.annotations.Mapper;

import java.util.Date;
import java.util.List;

@Mapper
public interface AllowviewmessgaeMapper {
    int deleteByPrimaryKey(String allowViewMsgId);

    /**
     * 删除某条帖子的所有可见记录
     * @param msgId
     * @return
     */
    int deleteByMsgId(String msgId);

    /**
     * 删除A用户看到的B用户的所有帖子，如取消关注、拉黑等
     * @param userId
     * @param msgUserId
     * @return
     */
    int deleleByUserIds(String userId, String msgUserId);

    /**
     * 用户屏蔽帖子时删除该帖子可见记录
     * @param userId
     * @param msgId
     * @return
     */
    int deleleByUserIdAndMsgId(String userId, String msgId);

    int insert(Allowviewmessgae record);

    /**
     * 获取用户可见帖子列表
     * @param userId
     * @return
     */
    List<String> getMsgIdsByUserId(String userId , Date beforeDeadTime);


    /**
     * 获取用户可见帖子列表
     * @param userId
     * @return
     */
    List<AllowviewmessgaeVo> getMsgsByUserId(String userId , Date beforeDeadTime);

    /**
     * 批量插入记录
     * @param listRecord
     * @return
     */
    int insertRecordBatch(List<Allowviewmessgae> listRecord);

    int insertSelective(Allowviewmessgae record);

    Allowviewmessgae selectByPrimaryKey(String allowViewMsgId);

    int updateByPrimaryKeySelective(Allowviewmessgae record);

    int updateByPrimaryKey(Allowviewmessgae record);

    /**
     * 修改创建时间
     * @param msgId
     * @param updateDate
     * @return
     */
    int updateCreateDate(String msgId, Date updateDate);
}